package org.mfw.obj.mob
{
	import org.mfw.interfaces.obj.list.ISongList;
	import org.mfw.interfaces.obj.mob.IBox;
	import org.mfw.interfaces.obj.mob.ICover;
	import org.mfw.obj.list.BoxList;
	import org.mfw.obj.list.SongList;
	
	public class Box extends MediaObject implements IBox
	{
		private var _cover:ICover;
		private var _boxList:BoxList = new BoxList();
		private var _songs:ISongList = new SongList();
		
		public function Box(id:Number, cover:ICover = null)
		{
			this._ID = id;
			this._cover = cover;
		}
		
		/**
		 * Die CoverURL kommt aus dem Objekt cover der Klasse Cover
		 * 
		 * */
		public function get coverURL():String {
			return this._cover.pictureURL;
		}
		
	
		/**
		 * Die URL des Cover ist nicht in der Box gespeichert!
		 * Das Coverobjekt wird mit der BOX geliefert da es von der GUI
		 * sowieso erfragt werden wird.
		 * */
		public function get cover():ICover {
			return this._cover;
		}
		
		/**
		 * Die einzelnen Unterboxen werden in einer BoxList gespeichert.
		 * Der Programmierumgang mit einer BoxList ist einfacher zu
		 * gestalten als mit einem Array.
		 * */
		public function get boxList():BoxList {
			return this._boxList;
		}
		
		/**
		 * Die einzelnen Unterboxen werden in einer BoxList gespeichert.
		 * Der Programmierumgang mit einer BoxList ist einfacher zu
		 * gestalten als mit einem Array.
		 * */
		public function set boxList(boxList:BoxList):void {
			this._boxList=boxList;
		}
		
		/**
		 * Liefert eine Liste mit allen Liedern der Box
		 * */
		public function get songs():ISongList {
			return this._songs;
		}
		
		public function set songs(value:ISongList):void {
			this._songs=value;
		}
	}
}